package com.example.mylogin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mylogin.entity.SpatialArea;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.locationtech.jts.geom.Geometry;

import java.util.List;

/**
 * <p>
 * 功能描述：
 * </p>
 *
 * @author cui haida
 * @date 2025/06/10/19:34
 */
@Mapper
public interface SpatialAreaMapper extends BaseMapper<SpatialArea>  {

    /**
     * 查找包含指定几何对象的区域
     */
    List<SpatialArea> findAreasContaining(@Param("geometry") Geometry geometry);

    /**
     * 找到与指定几何对象距离小于指定距离的区域
     */
    List<SpatialArea> findAreasWithinDistance(@Param("geometry") Geometry geometry,
                                              @Param("distance") double distance);

    /**
     * 计算指定区域的面积
     */
    Double calculateArea(@Param("id") Long id);
}
